if (self != nil)
{
- [self setTarget:self];
+ const gchar *special = gtk_menu_tracker_item_get_special (aTrackerItem);
+
+ if (special && g_str_equal (special, "hide-this"))
+ {
+ [self setAction:@selector(hide:)];
+ [self setTarget:NSApp];
+ }
+ else if (special && g_str_equal (special, "hide-others"))
+ {
+ [self setAction:@selector(hideOtherApplications:)];
+ [self setTarget:NSApp];
+ }
+ else if (special && g_str_equal (special, "show-all"))
+ {
+ [self setAction:@selector(unhideAllApplications:)];
+ [self setTarget:NSApp];
+ }
+ else if (special && g_str_equal (special, "services-submenu"))
+ {
+ [self setSubmenu:[[[NSMenu alloc] init] autorelease]];
+ [NSApp setServicesMenu:[self submenu]];
+ [self setTarget:self];
+ }
+ else
+ [self setTarget:self];
trackerItem = g_object_ref (aTrackerItem);
trackerItemChangedHandler = g_signal_connect (trackerItem, "notify", G_CALLBACK (tracker_item_changed), self);